package org.crazyit.cloud.use3;


import com.netflix.config.ConfigurationManager;

/**
 * 先使用线程隔离策略，hystrix默认就是使用线程隔离策略
 *
 * 程序输出为：
 * 执行回退，当前索引：4
 * 执行回退，当前索引：5
 * 执行方法，当前索引：0
 * 执行方法，当前索引：2
 * 执行方法，当前索引：1
 * 执行方法，当前索引：3
 */
public class ThreadMain {

    public static void main(String[] args) throws InterruptedException {
        //先设置全局配置，设置线程池大小为4（不设置默认是10）
        ConfigurationManager
                .getConfigInstance()
                .setProperty("hystrix.threadpool.default.coreSize", 4);
        for (int i = 0; i < 6; i++) {
            //直接异步执行，从前面知道execute是同步执行的，所以这里用queue
            MyCommand c = new MyCommand(i);
            c.queue();
        }
        Thread.sleep(5000);
    }

}
